บทที่ 4 การเชื่อมต่ออุปกรณ์ต่อพ่วง
General Purpose Input/Output Interface (GPIO)
ESP8266EX มี 17 GPIO pins ซึ่งสามารถกำหนดให้กับฟังก์ชันต่างๆได้โดยการเขียนโปรแกรมการลงทะเบียนที่เหมาะสม
GPIO แต่ละตัวสามารถกำหนดค่าด้วยการ pull-up หรือ pull-down หรือกำหนดค่าความต้านทานสูงและเมื่อกำหนดค่าเป็นอินพุต ข้อมูลจะถูกเก็บไว้ใน software registers อินพุทยังสามารถตั้งค่าให้เป็น edge-trigger หรือ level trigger CPU interrupts ในระยะสั้น IO pads เป็นแบบ bidirectional, non-inverting และ tristate ซึ่งประกอบด้วยบัฟเฟอร์อินพุตและเอาท์พุต กับ tristate
control inputs
Pin เหล่านี้สามารถ multiplexed กับฟังก์ชันอื่น ๆ เช่น I2C, I2S, UART, PWM, IR Remote Control, LED Light และปุ่มเป็นต้น
สำหรับการใช้พลังงานต่ำ GPIO ยังสามารถตั้งค่าให้อยู่ในสถานะของตัวมันเองได้อีกด้วย ตัวอย่างเช่นเมื่อชิปปิด สัญญาณเอาต์พุตทั้งหมดสามารถตั้งค่าไว้ที่ระดับต่ำ
เมื่อ IO ไม่ได้รับการขับเคลื่อนด้วยวงจรภายในหรือภายนอก ฟังก์ชั่นการถือครองสามารถใช้เพื่อเก็บสถานะไปยังสถานะที่ใช้ครั้งล่าสุด
Secure Digital Input/Output Interface (SDIO)
ESP8266EX มี SDIO Slave หนึ่งชุด
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
SDIO_CLK | 21 | IO6 | SDIO_CLK |
SDIO_DATA0 | 22 | IO7 | SDIO_DATA0 |
SDIO_DATA1 | 23 | IO8 | SDIO_DATA1 |
SDIO_DATA_2 | 18 | IO9 | SDIO_DATA_2 |
SDIO_DATA_3 | 19 | IO10 | SDIO_DATA_3 |
SDIO_CMD | 20 | IO11 | SDIO_CMD |
หมายเหตุ
สนับสนุน 4-bit 25 MHz SDIO v1.1 และ 4-bit 50 MHz SDIO v2.0
Serial Peripheral Interface (SPI/HSPI)
ESP8266EX มี SPI 3 ตัว
- One general Slave/Master SPI
- One Slave SDIO/SPI
- One general Slave/Master HSPI
ฟังก์ชั่นของ pin ทั้งหมดนี้สามารถใช้งานได้ผ่านทางฮาร์ดแวร์ คำอธิบาย pin จะอธิบายไว้ด้านล่าง
General SPI (Master/Slave)
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
SDIO_CLK | 21 | IO6 | SPICLK |
SDIO_DATA0 | 22 | IO7 | SPIQ/MISO |
SDIO_DATA1 | 23 | IO8 | SPID/MOSI |
SDIO_DATA2 | 18 | IO9 | SPIHD |
SDIO_DATA3 | 19 | IO10 | SPIWP |
U0TXD | 26 | IO1 | SPICS1 |
GPIO0 | 15 | IO0 | SPICS2 |
หมายเหตุ
SPI mode สามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์ ความถี่นาฬิกาสูงสุดคือ 80 MHz
HSPI (Slave)
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
MTMS | 9 | IO14 | HSPICLK |
MTDI | 10 | IO12 | HSPIQ/MISO |
MTCK | 12 | IO13 | HSPID/MOSI |
MTDO | 13 | IO15 | HPSICS |
การเชื่อมต่อ I2C
ESP8266EX มีหนึ่ง I2C ใช้เพื่อเชื่อมต่อกับไมโครคอนโทรลเลอร์และอุปกรณ์ต่อพ่วงอื่น ๆ เช่นเซ็นเซอร์
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
MTMS | 9 | IO14 | I2C_SCL |
GPIO2 | 14 | IO2 | I2C_SDA |
รองรับ I2C Master และ I2C Slave ฟังก์ชันการทำงานของการเชื่อมต่อ I2C สามารถรับรู้ได้ผ่านการเขียนโปรแกรมซอฟต์แวร์และความถี่นาฬิกาสูงสุดเท่ากับ 100 kHz ควรสังเกตว่าความถี่ I2C ควรจะสูงกว่าความถี่นาฬิกาที่ช้าที่สุดของอุปกรณ์ slave
การเชื่อมต่อ I2S
ESP8266EX มีหนึ่งการเชื่อมต่อข้อมูลอินพุต I2S และหนึ่งการเชื่อมต่อข้อมูลเอาท์พุต I2S การเชื่อมต่อ I2S ส่วนใหญ่จะใช้ในแอพพลิเคชันเช่นการรวบรวมข้อมูล, การประมวลผล, และการส่งผ่านข้อมูลเสียง รวมทั้งการป้อนข้อมูลและการส่งข้อมูลอนุกรม ตัวอย่างเช่นไฟ LED (WS2812 series) ก็ได้รับการสนับสนุน I2S สามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์โดยใช้ GPIO แบบมัลติเพล็กซ์และสนับสนุน DMA ที่เชื่อมโยงกัน
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
MTDI | 10 | IO12 | I2SI_DATA |
MTCK | 12 | IO13 | I2SI_BCK |
MTMS | 9 | IO14 | I2SI_WS |
MTDO | 13 | IO15 | I2SO_BCK |
U0RXD | 25 | IO3 | I2SO_DATA |
GPIO2 | 14 | IO2 | I2SO_WS |
Universal Asynchronous Receiver Transmitter (UART)
ESP8266EX มี 2 UART คือ UART0 และ UART
Pin Type | Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|---|
UART0 | U0RXD | 25 | IO3 | U0RXD |
U0TXD | 26 | IO1 | U0TXD | |
MTDO | 13 | IO15 | U0RTS | |
MTCK | 12 | IO13 | U0CTS | |
UART1 | GPIO2 | 14 | IO2 | U1TXD |
SD_D1 | 23 | IO8 | U1RXD |
การโอนย้ายข้อมูลไปยัง/จาก UART สามารถทำได้ผ่านทางฮาร์ดแวร์ ความเร็วในการรับส่งข้อมูลผ่านอินเทอร์เฟซ UART อยู่ที่ 115200 x 40 (4.5 Mbps)
UART0 สามารถใช้สำหรับการสื่อสารได้ รองรับ fluid control เนื่องจาก UART1 มีเฉพาะสัญญาณส่งข้อมูล (Tx) จึงมักใช้สำหรับบันทึก log
หมายเหตุ
ตามค่าเริ่มต้น UART0 จะพิมพ์ข้อมูลที่พิมพ์ออกมาบางส่วนเมื่ออุปกรณ์เปิดอยู่และบูตเครื่อง อัตราการส่งข้อมูลของข้อมูลที่พิมพ์มีความสัมพันธ์กับความถี่ของ crystal oscillator ภายนอก ถ้าความถี่ของ oscillator ผลึกเป็น 40 MHz แล้วอัตรา baud สำหรับการพิมพ์เป็น 115200; ถ้าความถี่ของ crystal oscillator คือ 26 MHz อัตราการส่งสำหรับการพิมพ์คือ 74880 ถ้าข้อมูลที่พิมพ์มีอิทธิพลต่อการทำงานของอุปกรณ์แนะนำให้ปิดกั้นการพิมพ์ระหว่างช่วงเปิดเครื่องด้วยการเปลี่ยน ( U0TXD, U0RXD) ถึง (MTDO, MTCK)
Pulse-Width Modulation (PWM)
ESP8266EX มีเอาท์พุท PWM เอาไว้สี่ชุด
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
MTDI | 10 | IO12 | PWM0 |
MTDO | 13 | IO15 | PWM1 |
MTMS | 9 | IO14 | PWM2 |
GPIO4 | 16 | IO4 | PWM3 |
ฟังก์ชันการทำงานของการเชื่อมต่อ PWM สามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์ ตัวอย่างเช่นในการสาธิต LED smart light ฟังก์ชั่นของ PWM จะเกิดขึ้นโดยการหยุดชะงักของตัวจับเวลาความละเอียดต่ำสุดถึงสูงถึง 44 ns ช่วงความถี่ของ PWM สามารถปรับได้จาก 1000 μsถึง 10000 μs ได้แก่ 100 Hz และ 1 kHz เมื่อความถี่ PWM คือ 1 kHz อัตราส่วนของงานจะเท่ากับ 1/22727 และความละเอียดมากกว่า 14 บิตจะได้อัตรารีเฟรช 1 kHz
IR Remote Control
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
MTMS | 9 | IO14 | IR Tx |
GPIO5 | 24 | IO5 | IR Tr |
ฟังก์ชันอินเทอร์เฟซการควบคุมระยะไกลอินฟาเรดสามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์NEC coding, modulation, และ demodulation ใช้โดยการเชื่อมต่อนี้ ความถี่ของสัญญาณของผู้ให้บริการปรับเป็น 38 kHz ขณะที่อัตราการทำงานของคลื่นสี่เหลี่ยมคือ 1/3 ช่วงการรับส่งข้อมูลอยู่ที่ประมาณ 1 เมตรซึ่งขึ้นอยู่กับปัจจัยสองประการคือค่าหนึ่งคือค่าสูงสุดของกระแสไฟฟ้าที่ได้รับการจัดอันดับและอีกค่าหนึ่งคือค่าความต้านทานภายในของตัวรับสัญญาณอินฟราเรด ยิ่งค่าต้านทานสูงเท่าใดกระแสไฟฟ้าที่ต่ำลงจะทำให้กำลังไฟฟ้าลดลงและในทางกลับกัน มุมการรับส่งอยู่ระหว่าง 15 °ถึง 30 °ซึ่งขึ้นอยู่กับทิศทางการรับรังสีของตัวรับสัญญาณอินฟราเรด
ADC (Analog-to-Digital Converter)
Pin Name | Pin Num | Function Name |
---|---|---|
TOUT | 6 | ADC Interface |
สามารถใช้ฟังก์ชันสองอย่างต่อไปนี้ได้โดยใช้ ADC (Pin 6) อย่างไรก็ตามไม่สามารถใช้งานได้ในเวลาเดียวกัน
- ทดสอบแรงดันไฟฟ้าของ VDD3P3 (Pin 3 และ Pin 4)
Hardware Design | TOUT must be floating. |
---|---|
RF Initialization Parameter | The 107th byte of esp_init_data_default.bin(0 ~ 127 bytes), vdd33_const must be set to 0xFF. |
RF Calibration Process | Optimize the RF circuit conditions based on the testing results of VDD3P3(Pin 3 and Pin 4). |
User Programming | Use system_get_vdd33 instead of system_adc_read. |
- ทดสอบแรงดันไฟฟ้าขาเข้าของ TOUT (Pin 6)
Hardware Design | The input voltage range is 0 to 1.0V when TOUT is connected to external circuit. |
---|---|
RF Initialization Parameter | The value of the 107th byte of esp_init_data_default.bin(0 ~ 127 bytes), vdd33_const must be set to the real power supply voltage of Pin 3 and Pin 4.The working power voltage range of ESP8266EX is between 1.8V and 3.6V, while the unit of vdd33_const is 0.1V, therefore, the effective value range of vdd33_const is 18 to 36. |
RF Calibration Process | Optimize the RF circuit conditions based on the value of vdd33_const.The permissible error is ±0.2V. |
User Programming | Use system_adc_read instead of system_get_vdd33. |
ไฟ LED และปุ่ม
ESP8266EX 17 GPIOs ซึ่งทั้งหมดสามารถกำหนดให้รองรับฟังก์ชั่นต่างๆของไฟ LED และปุ่มต่างๆได้ นิยามของ GPIO บางตัวที่กำหนดให้กับฟังก์ชันบางอย่างในการออกแบบแอ็พพลิเคชันสาธิตจะแสดงไว้ด้านล่าง
Pin Name | Pin Num | I/O | Function Name |
---|---|---|---|
MTCK | 12 | IO13 | Button(Reset) |
GPIO0 | 15 | IO0 | Wi-Fi Light |
MTDI | 10 | IO12 | Link Light |
มีการกำหนดการเชื่อมต่อทั้งหมดสามแบบ หนึ่งสำหรับปุ่ม ในขณะที่อีก 2 แบบสำหรับไฟ LED โดยทั่วไป MTCK ใช้สำหรับควบคุมปุ่มรีเซ็ต GPIO0 ใช้เป็นสัญญาณเพื่อระบุสถานะการทำงานของ Wi-Fi ส่วน MTDI ใช้เป็นสัญญาณเพื่อบ่งบอกถึงสถานะการสื่อสารระหว่างอุปกรณ์และเซิร์ฟเวอร์
หมายเหตุ
การเชื่อมต่อส่วนใหญ่ที่อธิบายไว้ในบทนี้สามารถมัลติเพล็กซ์ได้ การกำหนด Pin ที่สามารถกำหนดได้ไม่จำกัดเฉพาะคำจำกัดความที่ระบุในที่นี้ คุณสามารถปรับแต่งการทำงานของ pin ได้ตามสถานการณ์การใช้งานเฉพาะของคุณผ่านการเขียนโปรแกรมซอฟต์แวร์และการออกแบบฮาร์ดแวร์